function getCommentsCommentGrid(){
	delRec = function(){
		var c = grid.selModel.getCount();
		if(c < 1){
			Ext.MessageBox.alert('Ошибка','Не выделено ни одной записи.');
			return;
		}
		Ext.MessageBox.confirm('Подтверждение','Вы действительно хотите удалить выделенное?',
			function(btn){
				if (btn!='yes') return;
				st.remove(grid.selModel.getSelected());
		});
	}
	addNewRec = function(){
		var rt = st.recordType;
		var n = new rt({NodeId: 1, Name: 'Пользователь', Text: 'Новый отзыв', Publish: 0, CommentDate: '2012-01-01'});
		grid.stopEditing();
		st.insert(0, n);
		grid.startEditing(0, 0);
	}
	var st = new Ext.data.Store({
		proxy: new Ext.data.HttpProxy({url: '/comments/comments'}),
		restful: true,
		reader: new Ext.data.JsonReader({root: 'data',totalProperty: 'total',idProperty: 'Id'},[ 
			{name: 'Id', type: 'int', mapping: 'Id'}
			,{name: 'NodeId', type: 'int', mapping: 'NodeId'}
			,{name: 'Name', type: 'string', mapping: 'Name'}
			,{name: 'CommentDate', type: 'date', mapping: 'CommentDate'}
			,{name: 'Text', type: 'string', mapping: 'Text'}
			,{name: 'ModeratorName', type: 'string', mapping: 'ModeratorName'}
			,{name: 'ResponseDate', type: 'date', mapping: 'ResponseDate'}
			,{name: 'ResponseText', type: 'string', mapping: 'ResponseText'}
            ,{name: 'Publish', type: 'boolean', mapping: 'Publish'}
		])
		,writer:new Ext.data.JsonWriter({encode: false})
        ,listeners{
            'update': function(s,r,o){
                
                
            }
        }
	});
	st.load();
	
	createEditor = function(st,r){
		var e = new Ext.FormPanel({
			frame:true,
		    bodyStyle:'padding:5px 5px 0',
		    defaults: {width: 530},
		    defaultType: 'textfield',
		    closable: true,
		    autoScroll: true,
			labelWidth: 135,
			title: 'Комментарий '+ r.data.Id,
			items: [{fieldLabel: 'Узел',name: 'NodeId',allowBlank: false, value: r.data.NodeId}
                ,{fieldLabel: 'Публиковать',name: 'Publish',xtype: 'checkbox',allowBlank: false,inputValue: 1,checked: r.data.Publish}
				,{fieldLabel: 'Пользователь',name: 'Name',allowBlank: false, value: r.data.Name}
				,{fieldLabel: 'Дата отзыва',name: 'CommentDate',allowBlank: true,value: r.data.CommentDate,xtype: 'datefield',format: 'd.m.Y'}
				,{fieldLabel: 'Текст',xtype: 'textarea',name: 'Text',height: 450,value: r.data.Text,allowBlank:false}
				,{fieldLabel: 'Модератор',name: 'ModeratorName',allowBlank: true, value: r.data.ModeratorName}
				,{fieldLabel: 'Дата ответа',name: 'ResponseDate',allowBlank: true,value: r.data.ResponseDate,xtype: 'datefield',format: 'd.m.Y'}
				,{fieldLabel: 'Текст ответа',xtype: 'htmleditor',name: 'ResponseText',height: 450,value: r.data.ResponseText,allowBlank: true}
			],
			buttons: [{
					text: 'Сохранить'
					,scope: this
					,handler: function(){
						var val=e.getForm().getFieldValues();
                        var s = st.getById(r.data.Id);
						s.beginEdit();
						s.set('NodeId', val.NodeId);
						s.set('Name', val.Name);
						s.set('CommentDate', val.CommentDate);
						s.set('Text', val.Text);
						s.set('ModeratorName', val.ModeratorName);
						s.set('ResponseDate', val.ResponseDate==''?null:val.ResponseDate);
						s.set('ResponseText', val.ResponseText);
                        s.set('Publish', val.Publish);
						s.endEdit();
					}
				}]
		});
		return e;
	}
	var grid = new Ext.grid.EditorGridPanel({
		closable: true,
		store: st,
		clicksToEdit:2,
		height: 350,
		width: 600,
		title: 'Комментарии',
        listeners: {celldblclick: function(g){Layout.base.tab.add(createEditor(g.getStore(),g.getSelectionModel().getSelected())).show();}},
		selModel: new Ext.grid.RowSelectionModel({singleSelect:true})
		,bbar: new Ext.PagingToolbar({
			pageSize: 25,
			store: st,
			displayInfo: true,
			displayMsg: 'записи {0} - {1} из {2}',
			emptyMsg: "нет записей",
		})
		,tbar: [{text: 'Добавить',tooltip: 'Добавить новую запись', handler: addNewRec}
			,{text: 'Удалить запись',tooltip: 'Удаление выделенной записи', scope:this, handler: delRec}
			,new Nippy.SearchField({ store: st, params: {start: 0, limit: 25}, width: 120})
		]
		,columns: [{header:'№',width:50,sortable:true,dataIndex: 'Id'}
			,{header:'Узел',width:50,sortable:true,dataIndex: 'NodeId'}
			,{header:'Пользователь',width:100,sortable:true,dataIndex: 'Name'}
			,{header:'Дата',width :75,sortable : true, dataIndex: 'CommentDate',format: 'd.m.Y',xtype: 'datecolumn'}
			,{header:'Отзыв',width:150,sortable:true,dataIndex: 'Text'}
			,{header:'Модератор',width:100,sortable:true,dataIndex: 'ModeratorName'}
			,{header:'Дата ответа',width :75,sortable : true, dataIndex: 'ResponseDate',format: 'd.m.Y',xtype: 'datecolumn'}
			,{header:'Ответ',width:150,sortable:true,dataIndex: 'ResponseText'}
			,{header:'Публиковать', width :50, sortable : true,dataIndex: 'Publish',trueText:'да',falseText:'нет',xtype: 'booleancolumn'}
		]
	});
	return grid;
}//function